/**************************************************************************************************
* Title: SmurfsRenderObject.h
* Authors: Gael Huber
* Description: Wrapper class for a render object
**************************************************************************************************/
#ifndef __SMURFSMESH_H__
#define __SMURFSMESH_H__

#include "SmurfsVector3.h"
#include "SmurfsQuaternion.h"
#include <vector>

enum MeshType {
	PYRAMID,
	CUBE,
	SPHERE
};

class Mesh {
public:
	Mesh(void);				// Constructor
	Mesh(MeshType shape);	// Constructor taking mesh type
	~Mesh(void);			// Destructor

	unsigned int data;		// Object's draw list
	std::vector<Vector3> vertices;	// List of vertices to draw on the screen
	std::vector<Vector3> colors;	// List of colors to accompany the vertices
	Vector3 screenCoords;	// On-screen coordinates
	float angle;			// Angle of rotation
	Vector3 dimensions;		// Dimensions of the object
	Vector3 halfDimensions;	// Half dimensions for determining screen position
	int resourceID;			// The resource ID for this object
	int objectID;			// Unique ID for this object

	Vector3 rotationAxis;	// Axis of object's rotation
	MeshType type;			// Shape of the mesh
};

#endif